package org.dromara.customer.domain.vo;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.customer.domain.TaOrders;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;


/**
 * 订单视图对象 ta_orders
 *
 * @author xiyin321
 * @date 2024-07-09
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = TaOrders.class)
public class TaOrdersVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ExcelProperty(value = "主键")
    private Long ordersId;

    /**
     * 订单状态 1待付款 2待接单 3已接单 4派送中 5已完成 6已取消 7退款
     */
    @ExcelProperty(value = "订单状态 1待付款 2待接单 3已接单 4派送中 5已完成 6已取消 7退款")
    private Long status;

    /**
     * 用户id
     */
    @ExcelProperty(value = "用户id")
    private Long userId;

    /**
     * 地址id
     */
    @ExcelProperty(value = "地址id")
    private Long addressId;

    /**
     * 下单时间
     */
    @ExcelProperty(value = "下单时间")
    private Date orderTime;

    /**
     * 结账时间
     */
    @ExcelProperty(value = "结账时间")
    private Date checkoutTime;

    /**
     * 支付方式 1微信,2支付宝
     */
    @ExcelProperty(value = "支付方式 1微信,2支付宝")
    private Long payMethod;

    /**
     * 支付状态 0未支付 1已支付 2退款
     */
    @ExcelProperty(value = "支付状态 0未支付 1已支付 2退款")
    private Long payStatus;

    /**
     * 实收金额
     */
    @ExcelProperty(value = "实收金额")
    private String orderAmount;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remark;

    /**
     * 订单取消原因
     */
    @ExcelProperty(value = "订单取消原因")
    private String cancelReason;

    /**
     * 订单拒绝原因
     */
    @ExcelProperty(value = "订单拒绝原因")
    private String rejectionReason;

    /**
     * 订单取消时间
     */
    @ExcelProperty(value = "订单取消时间")
    private Date cancelTime;

    /**
     * 预计送达时间
     */
    @ExcelProperty(value = "预计送达时间")
    private Date estimatedDeliveryTime;

    /**
     * 配送状态  1立即送出  0选择具体时间
     */
    @ExcelProperty(value = "配送状态  1立即送出  0选择具体时间")
    private Integer deliveryStatus;

    /**
     * 送达时间
     */
    @ExcelProperty(value = "送达时间")
    private Date deliveryTime;

    /**
     * 打包费
     */
    @ExcelProperty(value = "打包费")
    private Long packAmount;

    /**
     * 餐具数量
     */
    @ExcelProperty(value = "餐具数量")
    private Long tablewareNumber;

    /**
     * 餐具数量状态  1按餐量提供  0选择具体数量
     */
    @ExcelProperty(value = "餐具数量状态  1按餐量提供  0选择具体数量")
    private Integer tablewareStatus;

    private List<TaOrderDetailVo> goodsList;
    private TaAddressVo address;

}
